﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace POVRay {
    [PRBlock("photons")]
    public class ObjectPhotons : Block {
        [PRParam("target")]
        public float? TargetWithSpacingMultiplier { get; set; }

        [PRParam("refraction")]
        public bool? Refraction { get; set; }

        [PRParam("reflection")]
        public bool? Reflection { get; set; }

        [PRParam("collect")]
        public bool? Collect { get; set; }

        [PRParam("pass_through")]
        public bool? PassThrough { get; set; }

        public ObjectPhotons() {
        }

        public ObjectPhotons(float targetWithSpacingMultiplier) {
            TargetWithSpacingMultiplier = targetWithSpacingMultiplier;
        }

        public ObjectPhotons(float? targetWithSpacingMultiplier, bool? refraction, bool? reflection, bool? collect, bool? passThrough) {
            TargetWithSpacingMultiplier = targetWithSpacingMultiplier;
            Refraction = refraction;
            Reflection = reflection;
            Collect = collect;
            PassThrough = passThrough;
        }

        public override string ToString(int level) {
            return this.POVRayString(level);
        }
    }
}
